using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using TestImport.Model;

namespace TestImport.View.Importeren
{
    public partial class ImporteerBoeken : Form
    {
        private String sqlqueryStudent = "INSERT INTO leerling (naam, geboorteDatum, adminCode, straat, gemeente, groepCode)";
        private String sqlqueryBoek = "INSERT INTO boek (titel, isbnNr, categorieCode, aankoopPrijs, boekStatusCode, uitgeverCode, aBoek, isBestelbaarBijPlato)";
        int aantalVelden = 0;
        char[] delimiters = { ';', '\t' };
        private StreamReader Readervar;
        String[] import_fields = new string[20];

        public ImporteerBoeken()
        {
            InitializeComponent();
        }

        private void btnImportBoeken_Click(object sender, EventArgs e)
        {
            txtFileNaam.Text = "leerlingen.txt";// fileDialog.FileName.ToString();
            leerlingTableAdapter.TruncateDummy();
            //progressBar.Value = 0;
            //progressBar.Minimum = 0;
            
            
            if (!txtFileNaam.Text.Equals(""))
            {
                this.Readervar = new StreamReader(txtFileNaam.Text);

                int i = 0;
                String lijn = Readervar.ReadLine();
                while ( lijn!=null)
                {
                    i++;
                    //this.lblTeller.Text = "Berekenen aantal lijnen "+i;
                    lijn = Readervar.ReadLine();
                }
                Readervar.Close();
                progressBar.Maximum = i;
                Text = "Aantal lijnen: " + i;
                
                                 
                this.Readervar = new StreamReader(txtFileNaam.Text);
                String kolom_lijn = Readervar.ReadLine();
                this.import_fields = kolom_lijn.Split(delimiters);
                for (int x = 0; x < this.import_fields.Length; x++)
                {
                    this.txtLijnen.Text += import_fields[x] + "\r\n";
                }
                Readervar.Close();
               
                String [] waarden;
                String sqlqueryBegin = " ";
                //values = lijn.Split(";"[0]);
                if (txtFileNaam.Text.IndexOf("boek") != -1)
                {
                    sqlqueryBegin = sqlqueryBoek;
                    aantalVelden = 6;
                }
                else
                {
                    sqlqueryBegin = sqlqueryStudent;
                    aantalVelden = 6;
                }
                waarden = new string[aantalVelden];
                sqlqueryBegin += " VALUES (";
                String sqlQuery = sqlqueryBegin;
                int tel = 0;
                string prijs = "0";
                try
                {
                    
                    this.Readervar = new StreamReader(txtFileNaam.Text);
                    lijn = Readervar.ReadLine();
                    //lijn = Readervar.ReadLine();
                    //this.lblTeller.Text = lijn;
                    waarden = lijn.Split(delimiters);
                    //this.lblTeller.Text += "%% " + waarden[0];
                    
                    while (lijn != null && tel < 10000)
                    {
                        for (int x = 0; x < aantalVelden; x++)
                        {
                            
                            if (txtFileNaam.Text.IndexOf("boek") != -1)
                            {
                                if (waarden[3].Length == 0) waarden[3] = "0,0";

                                if (x == 3)
                                {
                                    //Text += " /// " + waarden[3];
                                    prijs = waarden[3].Replace(",",".");
                                    //Text += " +++ " + prijs;
                                    sqlQuery += prijs + ", ";
                                }
                                else
                                {
                                    sqlQuery += "'" + waarden[x].Replace("'", "''") + "', ";
                                }
                            }
                            else
                                sqlQuery += "'" + waarden[x].Replace("'", "''") + "', ";
                        }
                       
                        if (txtFileNaam.Text.IndexOf("boek") != -1) sqlQuery += "'True', 'True'";
                        else sqlQuery = sqlQuery.Substring(0, sqlQuery.Length - 2);
                        sqlQuery += ")";
                        try
                        {
                            Database.Instance.GetDatabase.defaultExecuteNonQuery(CommandType.Text, sqlQuery);
                        }
                        catch (Exception) { }
                        progressBar.Value++;
                        //this.txtLijnen.Text += sqlqueryBegin + "\r\n";
                        lijn = Readervar.ReadLine();
                        if (!lijn.Equals(" ")) waarden = lijn.Split(delimiters);
                        //this.txtLijnen.Text += sqlQuery + "\r\n";
                        sqlQuery = sqlqueryBegin;
                        tel++;
                    }
                    Text += " **** " + tel;
                    txtLijnen.Text = sqlQuery;
                }
                catch (Exception ex) {MessageBox.Show(ex.Message) ;}
                Text += " **** " + tel;
                txtLijnen.Text = sqlQuery;
            }
        }

        private void ImporteerBoeken_Load(object sender, EventArgs e)
        {

        }
    }
}